#ifndef RTC_H
#define RTC_H

#include <time.h>

/**
 * @brief 初始化RTC
 * 如果当前时间有效（RTC时间>0），则不修改时间
 * 否则将时间设置为编译时间
 */
void cl_rtc_init();

/**
 * @brief 读取当前时间戳（秒）
 * @return 当前时间戳
 */
time_t rtc_read_timestamp();

/**
 * @brief 写入时间戳（秒）
 * @param timestamp 要写入的时间戳
 */
void rtc_write_timestamp(time_t timestamp);

/**
 * @brief 将时间戳转换为时间结构体
 * @param timestamp 时间戳（秒）
 * @param timeinfo 存储时间信息的结构体
 */
void rtc_timestamp_to_time(time_t timestamp, struct tm *timeinfo);

/**
 * @brief 将时间结构体转换为时间戳（秒）
 * @param timeinfo 时间结构体
 * @return 时间戳
 */
time_t rtc_time_to_timestamp(struct tm *timeinfo);

#endif // RTC_H